Repository navigation
K2GO-443 feat(code-addons): add-ons gallery updater on the durable job engine - #628
Merged
Merged
Conversation
…evice test) The same-build short-circuit only compared the served catalog, so a file lost out-of-band (interrupted swap, disk, manual delete) was reported up to date while 404-ing, never self-healing. Now it also requires every planned file present, matching the build-assets mirror. Caught on device.
…icons The Code-on-the-Go-Dev members had no overflow, so a ready member's row tap opened its content and the per-member action sheet (the only home of 'Update add-ons' / 'Update build assets') was unreachable: a reachability regression from the K2GO-445 grouping. Add a per-row overflow (status -> menu -> open arrow, 48dp touch) that opens the member action sheet. Give Add-ons an extension glyph and Build assets a box glyph (all three shared the code glyph before).
… a text glyph M3 iconography: the per-member overflow was a TextView "vertical ellipsis" glyph (matching the legacy grid-card overflow). Use an ic_more_vert vector in an ImageView, tinted like the other sheet icons.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add-ons gallery content updater moves from the fire-and-forget refresh wrapper to the durable job
engine: live progress (percent/speed), pause/resume/retry, and resilience to a network change or drop.
Only the heavy add-on binaries (.cgp + source tarballs) go through aria2 (verified by sha-256); the
mirror stages the small files (shell, catalog, icons, pages) with its Cloudflare clean and catalog base
rewrite. Incremental: unchanged files reuse by the catalog sha; a same-build catalog with every file
present short-circuits as up to date (presence-aware, so a file lost out-of-band re-downloads).
dash-node 1.3.12: code-addons is a job type (POST /code-addons/download, GET /code-addons/jobs/:id,
pause/resume/retry/cancel over the generic /:type/* surface, like build-assets). Runner
sockets/code_addons.exec.ts + the shared sockets/aria2-download.ts; mirror_addons.py keeps the content
work (--print-aria2-input stages the small files and emits the heavy aria2 input, with a #status marker
so a small-file-only change still swaps; --finalize-only verifies). One shared _stage core keeps the
bake and legacy-wrapper path unchanged.
App: AddonsDownloadService (foreground, extends the shared ContentDownloadServiceBase) + reworked
AddonsRefresh (determinate bar, speed, pause/resume, cancel); removes AddonsRefreshClient.
Members-sheet fix (a K2GO-445 grouping regression, affecting the already-merged build-assets too): the
grouped Code-on-the-Go-Dev members had no per-row overflow, so a ready member tap opened its content and
the action sheet hosting "Update add-ons" / "Update build assets" was unreachable. Add a per-row overflow
(status -> menu -> open arrow, a Material more_vert vector) that opens the member action sheet, and give
each member its own glyph (Add-ons = extension, Build assets = box; they shared the code glyph).
The older POST /addons/refresh (wrapper) stays for now.
Verified: dash-node typecheck, app compile, l10n, mirror self-tests, double-pass review. Device-validated
on a OnePlus: REST end to end (download into dl/, sha-256 verify, atomic swap, self-heal, up-to-date) and
the app UI tap-through (overflow -> Update add-ons -> inline progress -> complete); build-assets update
now reachable too.